//#include<iostream>
//#include<vector>
//#include<unordered_map>
//using namespace std;
//
//
//  struct TreeNode {
//      int val;
//      TreeNode *left;
//      TreeNode *right;
//     TreeNode() : val(0), left(nullptr), right(nullptr) {}
//      TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
//      TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
//  };
//
//
//class Solution {
//public:
//	
//	//后序遍历 
//	//因为想要剪掉一个子树，需要确定他的子节点是否需要剪枝
//	TreeNode* pruneTree(TreeNode* root) {
//        if(root == NULL)
//        	return NULL;
//        	
//	    
//	    root->left = pruneTree(root->left);
//	    root->right = pruneTree(root->right);
//	    
//	    if(root->left== NULL && 
//		   root->right == NULL &&
//		   root->val == 0)
//		{
//			root = NULL;   	
//	    }
//	    
//	    return root;
//    }
//};
//
//
//
//int main()
//{
//	return 0;
//}